// 题14
function Test14() {
	function runAsync(x) {
		const p = new Promise((r) =>
			setTimeout(() => {
				r(x, console.log(x));
			}, 1000)
		);
		return p;
	}
	function runReject(x) {
		const p = new Promise((res, rej) =>
			setTimeout(() => {
				rej(`Error:${x}`, console.log(x));
			}, 1000 * x)
		);
		return p;
	}
	Promise.all([runAsync(1), runReject(4), runAsync(3), runReject(2)])
		.then((res) => console.log(res))
		.catch((err) => console.log(err));
}
Test14();
// 结果：
// 1
// 3
// 2
// Error:2
// 4

/**
 * 解析：如果一组异步操作中有一个异常都不会进入.then的第一个回调函数，会被第二个回调捕获
 */